using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;

namespace AvaProvi
{
    public partial class ctlRevestimientos : AvaProvi.ControlBase
    {
        public ctlRevestimientos()
            : base()
        {
            InitializeComponent();
            llenaGrupoCombos(ultraGroupBox2.Controls, configuracion1.AcabadosPisos, configuracion1.AcabadosPisos.AcabadoColumn);
            llenaGrupoCombos(ultraGroupBox3.Controls, configuracion1.AcabadosMuros, configuracion1.AcabadosMuros.AcabadoColumn);
            llenaGrupoCombos(ultraGroupBox4.Controls, configuracion1.AcabadosPlafones, configuracion1.AcabadosPlafones.AcabadoColumn);
            llenaCombo(ref cbxEdoPiso, configuracion1.AcabadosEstado, configuracion1.AcabadosEstado.EstadoColumn);
            llenaCombo(ref cbxEdoMuros, configuracion1.AcabadosEstado, configuracion1.AcabadosEstado.EstadoColumn);
            llenaCombo(ref cbxEdoPlafones, configuracion1.AcabadosEstado, configuracion1.AcabadosEstado.EstadoColumn);
            llenaCombo(ref cbxEdoLambrines, configuracion1.AcabadosEstado, configuracion1.AcabadosEstado.EstadoColumn);
            llenaCombo(ref cbxEdoCarpinteria, configuracion1.AcabadosEstado, configuracion1.AcabadosEstado.EstadoColumn);
        }

        public override void ActualizaDatos()
        {
            base.ActualizaDatos();
            this.bsRevestimientos.EndEdit();
            clsAvaluo_CRN.AvaluoActual.Guardar();
            ActualizaPanel();
        }

        public override void ActualizaPanel()
        {
            this.bsRevestimientos.DataSource = clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento;
            this.bsRevestimientos.ResetBindings(false);
        }

        private void llenaCombo(ref ComboBox miCombo, DataTable miTabla, DataColumn miColumna)
        {
            miCombo.Items.Clear();
            foreach (DataRow miFila in miTabla.Rows)
            {
                miCombo.Items.Add(miFila[miColumna].ToString());
            }
        }

        private void llenaGrupoCombos(ControlCollection misControles, DataTable miTabla, DataColumn miColumna)
        {
            foreach (Control miControl in misControles)
            {
                if (miControl.GetType().FullName == "System.Windows.Forms.ComboBox")
                {
                    ComboBox miCombo= (ComboBox)miControl;
                    llenaCombo(ref miCombo, miTabla, miColumna);
                }
            }
        }

        private string AgregarOtro(string Propiedad)
        {
            frmOtro objfrmOtro = new frmOtro(Propiedad);
            if (objfrmOtro.ShowDialog() == DialogResult.OK)
                return objfrmOtro.txtOtro.Text;
            else
                return Propiedad;
        }


        #region Otras definiciones para Pisos

        private void btnPisosSC1_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PisosSC1 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PisosSC1);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtroPisosSC3_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PisosSC3 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PisosSC3);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtPisosC1_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PisosC1 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PisosC1);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtPisosC3_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PisosC3 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PisosC3);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtPisosR1_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PisosR1 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PisosR1);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtPisosR3_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PisosR3 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PisosR3);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtPisosB1_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PisosB1 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PisosB1);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtPisosB3_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PisosB3 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PisosB3);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtPisosF1_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PisosF1 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PisosF1);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtPisosF3_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PisosF3 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PisosF3);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtPisosP1_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PisosP1 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PisosP1);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtPisosP3_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PisosP3 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PisosP3);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtPisosE1_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PisosE1 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PisosE1);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnPisosE3_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PisosE3 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PisosE3);
            this.bsRevestimientos.ResetBindings(true);
        }

        #endregion

        #region Otras definiciones para Muros
        private void btnOtMurosSC1_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.MurosSC1 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.MurosSC1);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtMurosSC3_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.MurosSC3 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.MurosSC3);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtMurosC1_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.MurosC1 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.MurosC1);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtMurosC3_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.MurosC3 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.MurosC3);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtMurosR1_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.MurosR1 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.MurosR1);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtMurosR3_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.MurosR3 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.MurosR3);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtMurosB1_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.MurosB1 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.MurosB1);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtMurosB3_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.MurosB3 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.MurosB3);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtMurosF1_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.MurosF1 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.MurosF1);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtMurosF3_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.MurosF3 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.MurosF3);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtMurosP1_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.MurosP1 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.MurosP1);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtMurosP3_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.MurosP3 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.MurosP3);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtMurosE1_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.MurosE1 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.MurosE1);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtMurosE3_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.MurosE3 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.MurosE3);
            this.bsRevestimientos.ResetBindings(true);
        }
        #endregion

        #region Otras definiciones para Plafones
        private void btnOtPlafonesSC1_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PlafonesSC1 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PlafonesSC1);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtPlafonesSC3_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PlafonesSC3 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PlafonesSC3);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtPlafonesC1_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PlafonesC1 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PlafonesC1);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtPlafonesC3_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PlafonesC3 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PlafonesC3);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtPlafonesR1_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PlafonesR1 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PlafonesR1);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtPlafonesR3_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PlafonesR3 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PlafonesR3);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtPlafonesB1_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PlafonesB1 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PlafonesB1);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtPlafonesB3_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PlafonesB3 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PlafonesB3);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtPlafonesF1_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PlafonesF1 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PlafonesF1);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtPlafonesF3_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PlafonesF3 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PlafonesF3);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtPlafonesP1_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PlafonesP1 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PlafonesP1);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtPlafonesP3_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PlafonesP3 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PlafonesP3);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtPlafonesE1_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PlafonesE1 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PlafonesE1);
            this.bsRevestimientos.ResetBindings(true);
        }

        private void btnOtPlafonesE3_Click(object sender, EventArgs e)
        {
            clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PlafonesE3 = this.AgregarOtro(clsAvaluo_CRN.AvaluoActual.Inmueble.Revestimiento.PlafonesE3);
            this.bsRevestimientos.ResetBindings(true);
        }
        #endregion

    }
}
